home *** CD-ROM | disk | FTP | other *** search
- Name fecho
- Title
- page ,132
- comment /
-
- This program is a filter that reads from standard input and
- echoes both to standard out and standard error output. This
- is useful when debugging filter sequences because it allows
- you to view the intermediate data as the commands are executed.
-
- /
- ;===================================================================
- code segment public
- ;===================================================================
- ;
- ; command line is at 80h of psp - first byte is length
- ;
- org 80h
- parmsize db ?
- parm db 7fh dup (?)
- ;
- ; .com starts at 100h - but must jump around any data area
- ;
- org 100h ; com file starts here
- assume cs:code,ds:code,es:code
- fecho:
- jmp clear
- ;===================================================================
- ;
- ; data area for .com programs
- ;
- inchar db ?
- ;
- ;===================================================================
- clear:
- ;
- ; start of actual code is here (clear)
- ;
- ;
- ; These two i/o parameters are constants.
- ;
- lea dx,inchar ; offset of inchar
- mov cx,1h ; get 1 character
- again:
- ;
- ; read a character
- ;
- xor bx,bx ; zero is handle of standard input
- mov ah,3fh ; read a file/device function
- int 21h ; invoke the function
- ;
- ; if carry set of ax=0 exit
- ;
- jc oops ; i/o error
- and ax,ax ; set flags
- jz oops ; eof
- ;
- ; now output to standard output
- ;
- output:
- mov bx,1h ; standard output handle
- mov ah,40h ; dx still points at inchar
- int 21h ; call dos output function
- ;
- ; now output to error output as an echo
- ;
- mov bx,2h ; standard output handle
- mov ah,40h ; dx still points at inchar
- int 21h ; call dos output function
- jmp again ; repeat cycle
- oops:
- int 20h ; return to dos
- code ends
- end fecho